package main

import "fmt"

//切片
func main() {
	//演示切片的基本使用
	var intArr [5]int = [...]int{1, 22, 33, 44, 55}
	//声明定义一个切片
	//slice :=intArr[1:3]
	//1.slice就是切片名
	//2.intArr[1:3]表示slice引用到intArr这个数组
	//3.引用intArr数组的其实下标为1,最后的下标为3(但是不包含3)
	slice := intArr[1:3]
	fmt.Println("intArr=", intArr)
	fmt.Println("slice的元素是=", slice)        //22,33
	fmt.Println("slice的元素个数 =", len(slice)) //2
	fmt.Println("slice的容量=", cap(slice))    //切片的容量是可以动态变化的

	//演示切片的使用make
	//通过make创建的切片对外不可以见
	var slice1 []float64 = make([]float64, 5, 10)
	slice1[1] = 10
	slice1[3] = 20
	//对应切片必须make使用
	fmt.Println("slice1", slice1)             //2
	fmt.Println("slice1的元素个数 =", len(slice1)) //2
	fmt.Println("slice1的容量=", cap(slice1))

	//方式三
	var slice2 []string = []string{"tom", "jack", "mary"}
	fmt.Println("slice2", slice2)        //2
	fmt.Println("slice2 =", len(slice2)) //2
	fmt.Println("slice2=", cap(slice2))
}
